const joi = require('joi')
/***
 * string() 值必须是字符串 *
 * alphanum() 值只能是包含 a-zA-Z0-9 的字符串
 * min(length) 最小长度
 * max(length) 最大长度
 * required() 值是必填项，不能为 undefined
 * pattern(正则表达式) 值必须符合正则表达式的规则 */
const username = joi.string().alphanum().min(1).max(10).required()
const password = joi
  .string()
  .pattern(/^[\S]{6,12}$/)
  .required()
exports.rl = {
  // 表示需要对 req.body 中的数据进行验证
  body: {
    username,
    password,
  },
}
exports.rr = {
  // 表示需要对 req.body 中的数据进行验证
  body: {
    username,
    password,
    repassword: joi.ref('password'),
  },
}
// 定义 id, nickname, email 的验证规则
const id = joi.number().integer().min(1).required()
const nickname = joi.string().required()
const user_email = joi.string().email().required()

// 定义验证 avatar 头像的验证规则
const avatar = joi.string().dataUri().required()
exports.updateU = {
  // 表示需要对 req.body 中的数据进行验证
  body: {
    id,
    nickname,
    email: user_email,
    username,
  },
}
exports.updateP = {
  body: {
    oldPwd: password,
    newPwd: joi.not(joi.ref('oldPwd')).concat(password),
    rePwd: joi.ref('newPwd'),
  },
}
exports.updateA = {
  body: {
    avatar,
  },
}
